In a computer network, network switching devices (switches) interconnect to form a path for transmitting information between an originator and a recipient. A routing mechanism, or protocol, defines switching logic that forwards the transmitted information in the form of packets between the switches as a series of “hops” along a path. At each switch, the switching logic identifies the next switch, or hop, in the path using an identifier such as a Media Access Control (MAC) address. Shortest Path Bridging (SPB) is a routing mechanism having switching logic such that each switch advertises the nodes, and the link topology between the nodes, it knows about to all the other switches, and eventually all the switches in the network have the same topology picture of the network and therefore can forward frames to the next hop along a shortest path.
In a conventional router or switch, the fast packet forwarding (datapath) and the high level routing decisions (control path) occur on the same device. An OpenFlow Switch separates these two functions. The datapath portion still resides on the switch, while high-level routing decisions are moved to a separate controller, typically a standard server. The OpenFlow Switch and Controller communicate via the OpenFlow protocol, which defines messages, such as packet-received, send-packet-out, modify-forwarding-table, and get-stats.
The datapath of an OpenFlow Switch presents a clean flow table abstraction; each flow table entry contains a set of packet fields to match, and an action (such as send-out-port, modify-field, or drop). When an OpenFlow Switch receives a packet it has never seen before, for which it has no matching flow entries, it sends this packet to the controller. The controller then makes a decision on how to handle this packet. It can drop the packet, or it can add a flow entry directing the switch on how to forward similar packets in the future.
In simpler terms, OpenFlow allows the path of network packets through the network of switches to be determined by software running on multiple routers (minimum two of them—primary and secondary—has a role of observers). This separation of the control from the forwarding allows for more sophisticated traffic management than is feasible using access control lists (ACLs) and routing protocols.
Several vendors have announced plans to offer Software Defined Network (SDN) controllers. These controllers may use overlay methods where software based switches and routers build tunnels to cross a more traditional IP network layer and OpenFlow based hardware proposals where the Tertiary Content Addressable Memory (TCAM) supported lookups are used to achieve custom L2-L7 forwarding rules that get pushed down from a controller using open stack.